iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
1
自我挑戰組

TensorFlow 2 30天自我養成計畫系列 第 8

[Day 8]預處理資料,完美達成!

  • 分享至 

  • xImage
  •  
今天我們要來看的是要如何查看多筆訓練資料image與label,以及先整理之後所有要使用的features和labels。

查看多筆訓練資料images與label

  1. 建立plot_images_labels_prediction()函數,如下圖所示:

    以下逐步分析步驟!
    匯入pyplot模組,如下所示
import matplotlib.pyplot as plt

定義plot_images_labels_prediction()函數,如下所示

def plot_images_labels_prediction(images,labels,prediction,idx,num=10):

(定義plot_images_labels_prediction()函數,傳入參數:images、labels、prediction、idx、num)
設定顯示圖型的大小

fig = plt.gcf()
fig.set_size_inches(12, 14)

如果顯示筆數參數大於25設定為25,避免發生錯誤

if num>25: num=25

for迴圈執行程式碼以畫出num個數字圖形,如下所示

    for i in range(0, num):
        ax=plt.subplot(5,5,1+i)
        ax.imshow(image[idx], cmap='binary')
        title= "label=" +str(labels[idx])
        if len(prediction)>0:
            title+=",predict="+str(prediction[idx])
            
        ax.set_title(title,fontsize=10)
        ax.set_xticks([]);ax.set_yticks([])
        idx+=1

開始畫圖plt.show()
這樣就建立成功啦!/images/emoticon/emoticon01.gif

  1. 查看訓練前10筆資料,如下圖所示:
  2. 查看test測試資料
    鍵入以下指令:

    查看test測試資料筆數,共可看到10000筆資料,也可以鍵入show_images_labels(),顯示測試資料前10筆資料

多層感知器模型資料預處理
我們要開始建立多層感知器模型,首先要將images與labels的內容進行預處理,才能進行使用。
主要可分為兩部分:

  • features資料預處理
  • labels資料預處理

features資料預處理

  1. 查看image的shape
    鍵入以下指令,可以查看數字影像的shape
print ('X_train_image:',X_train_image.shape)
print ('Y_train_label:',Y_train_label.shape)
  1. 將image以reshape轉換
    筆者剛剛所呈現出的是二維的數字影像,只要以reshape轉換成一維,並且將astype轉換為float,總共有784個float
    如下圖所示:

    若要查看轉換為一維向量的shape,只需鍵入以下指令即可查看:
print ('X_train:',X_Train.shape)
print ('X_test:',X_Test.shape)
  1. 查看影像內容
    首先先查看第0筆的內容,再將數字影像image的數字標準化
  • 鍵入X_train_image[0]
  • 再鍵入下圖的指令

    注意!image的數字標準化,可提高訓練的準確率,因為image的數字是0至255,所以最簡單的標準化的方式是除以255
    結束後,鍵入X_Train_normalize[0]以查看數字影像image的數字標準化後的結果。

labels資料預處理

  1. 查看原先標籤的欄位
    相當簡單,只需鍵入以下指令,即可查看前五筆訓練資料
Y_train_label[:5]
  1. 執行One-hot encoding轉換
    使用np_utils.to_categorical分別傳入訓練資料與測試資料的label之標籤欄位,即可執行one-hot encoding轉換
    如下圖所示:

  2. 查看執行結果,就正式結束啦!
    鍵入以下指令即可查看

Y_TrainOnHot[:5]

注意!執行One-hot encoding後,架設第一筆資料原來的真實值為5,會從第五個數字(由0算起)是1,其餘皆為0

這樣整個資料處理就完成啦!明天再接再勵!/images/emoticon/emoticon08.gif

Reference: 林大貴(2019):TensorFlow+Keras 深度學習人工智慧實務應用。新北市:博碩文化


上一篇
[Day 7]認真學,沒那麼難!
下一篇
[Day 9]介紹Keras與建立Multilayer perceptron模型
系列文
TensorFlow 2 30天自我養成計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言